{imp:"tester/tester-layout"}<!--继承父模板-->

{block:extop}<?php
$title = 'Sphinx演示';
$_cbase['show']['apsize'] = 2; // 分页测试
$act = req('act');
?>{/block:extop}

{block:exmain}
<style>
/* test */
html{ padding:10px; }
ul { padding:5px; margin:20px; border:1px solid #CCC; }
</style>

<nav>
    <a href="{surl(0)}?{=$this->mkv}">[Home-Readme]</a><!--Read-->
    #
    <a href="{surl(0)}?mkv={=$this->mkv}&act=so">[com:List]</a>
    <br> Sphinx 
    <a href="{surl(0)}?mkv={=$this->mkv}&act=so&keywd=you">[so:you]</a>
    #
    <a href="{surl(0)}?mkv={=$this->mkv}&act=so&keywd=人">[so:人]</a>
    #
    <a href="{surl(0)}?mkv={=$this->mkv}&act=so&keywd=生">[so:生]</a>
</nav>

<hr>
<?php
if($act=='so'){ 
    $mod = 'demo';
    $keywd = req('keywd');
    $spcfg = read('sphinx.index','ex');
    if(empty($spcfg[$mod]) || empty($keywd)){
        $rs = db()->table('docs_demo')->order('did DESC')->select();
    }else{
        $sph = new extSphinx();
        $rs = $sph->getRecs($mod);
        $pgbar = $sph->pgbar('rebar','');
    }
?>
<ul>
    {loop $rs $k $row}
    <li>{=$row['did']} - {=$row['title']}</li>
    {/loop}
    <div class='pg_bar'>{=$pgbar}</div>
</ul>

<?php }else{ ?>

<pre>
* [0] 准备工作
 - 自行了解配置 Sphinx(可见后面Tips连接参考)
 - 分析本系统需求：如某模型 demo 需要Sphinx 检索；
 - 根据需求，对应表 docs_demo{fix} 手动增加字段：spid int(10) unsigned 自动增量

* [1] 配置重点提示:
 - Sphinx配置：参考`/root/cfgs/excfg/ex_sphinx.php`备注部分，并建立索引
   注意修改路径 和 mysql连接
 - 配置本系统: /root/cfgs/excfg/ex_sphinx.php 文件 'cfgs' 区块 和  
   'demo' => 'index_imcat_demo_main,index_imcat_demo_delta',
 
* [2] 后台使用:
 - url不变如：/root/run/adm.php?mkv=dops-a&mod=demo
 - 脚本扩展：/code/flow/eact/demo_list_show.php
 
* [3] 模板使用:
 - url：点击本页上方相关连接：
 - 模版代码见：{=$this->tplname} 

</pre>

<pre>
* 说明：
    本示例：使用 Sphinx 而 不是Coreseek，Coreseek请自行配置
    演示站上：因没有配置 Sphinx, 所以还是用mysql的检索

* 常用命定-参考
    cd [path]/bin
    searchd --config ../sphinx.conf --install
    indexer --config ../sphinx.conf --all [--rotate]

* links: 
    + http://blog.sina.com.cn/s/blog_721cd3390101gxlj.html  
    Sphinx PHP api全文检索的例子 
    + http://www.mudbest.com/sphinx%E5%9C%A8windows%E4%B8%8B%E5%AE%89%E8%A3%85%E4%BD%BF%E7%94%A8%E6%94%AF%E6%8C%81%E4%B8%AD%E6%96%87%E5%85%A8%E6%96%87%E6%A3%80%E7%B4%A2/
    Sphinx在windows下安装使用(支持中文全文检索)
    + http://blog.csdn.net/yagas/article/details/50145137
    使用sphinx创建搜索引擎(一)----简单索引
    + http://sphinxsearch.com/wiki/doku.php?id=sphinx_chinese_tutorial 
    SphinxWiki
    + https://my.oschina.net/melonol/blog/127438
    sphinx中文分词搜索coreseek windows下安装与基本使用简介
    + https://my.oschina.net/melonol/blog/127441
    sphinx全文检索之PHP使用教程
    + https://www.oschina.net/question/84274_11938
    使用PHP+Sphinx建立高效的站内搜索引擎
    + http://www.ttlsa.com/sphinx/sphinx-filter-string/
    sphinx 字符串过滤;  SELECT id, CRC32(utype) AS utype ...;  $sphinx->SetFilter('utype', array(crc32('A012'));
    + http://www.linuxidc.com/Linux/2015-04/116679.htm
    12亿DNS数据秒查
    + http://sphinxsearch.com/wiki/doku.php?id=charset_tables
    charset_tables Unicode Character Set Tables
</pre>

<hr>

<?php } ?>

{/block:exmain}
